package org.zzz.hepotaiya.executor;

import java.util.List;

import org.zzz.hepotaiya.beans.BatchResult;
import org.zzz.hepotaiya.config.ConfigParser;
import org.zzz.hepotaiya.container.IContainer;
import org.zzz.hepotaiya.loader.BatchLoader;

/**
 * 
 *
 */
public interface BatchExecutor {

	/**
	 * コンテナを設定します
	 * @param container
	 */
	void setContainer(IContainer container);

	/**
	 * バッチルートパッケージ(batchRoot)以下に登録されたバッチを実行します
	 * 
	 * @param batchRootPackage
	 * @return 実行結果
	 * @throws Exception
	 */
	List<BatchResult> doExecute(String batchRootPackage) throws Exception;
	
	/**
	 * ローダーを設定します
	 * @param batchLoader
	 */
	void setBatchLoader(BatchLoader batchLoader);
	
	/**
	 * コンフィグパーサを設定します
	 * @param configParser
	 */
	void setConfigParser(ConfigParser configParser);
}